-
Notifications
You must be signed in to change notification settings - Fork 118
Conversation
The problem with this PR is that MS GS Wavetable Synth does not support SysEx messages if I remember correctly. Try to test the examples from here: #101 (comment) |
MS GS Wavetable Synth supports SysEx but misses some settings when executing a reset. I made some changes to address this and other odd cases that may occur. It passes the pitch bend range tests that you linked and sounds good now. Thank you. |
Thank you! This PR is very interesting, I guess I did something wrong when testing SysEx messages when writing |
No problem! I was going to look at those projects next. It's a little trickier without PortMidi though. |
You need to use midiOutLongMsg() and prepare header for it first. It's a bit inconvenient, but shouldn't be difficult. I'll try this weekend too. |
It looks good to me. Any further concerns @rfomin @fabiangreffrath ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
Implementing this also has the benefit of fixing a number of related issues.
Changes:
New settings in prboom-plus.cfg:
mus_portmidi_reset_type "gs"
(gs, gm, gm2, xg)Reset type. Default is fine for most users.
mus_portmidi_reset_delay 0
(0 to 2000 ms)Delay after reset. Default is fine for software devices like MS GS Wavetable Synth, VirtualMIDISynth, or Roland Sound Canvas VA. For hardware devices like the Roland SC-55, try around 100 to 300 ms.
mus_portmidi_filter_sysex 0
(0 or 1)Filter (block) SysEx messages from midi files. Default (0 = don't filter) allows midi files to sound as intended. Pr+ couldn't process SysEx messages before and enabling this setting replicates that behavior at the expense of music accuracy.